pub fn dp_rec_mc(amount: u32) -> u32 {
    let mut amt = amount;
    const CASHES: [u32; 8] = [1, 2, 5, 10, 20, 30, 50, 100];

    let mut i = CASHES.len() - 1;
    let mut count = 0;
    while amt > 0 {
        // 找到小于且最接近剩余金额的硬币
        while i > 0 && CASHES[i] > amt {
            i -= 1;
        }
        amt -= CASHES[i];
        count += 1;
    }

    count
}
